Skip to content

Developer experience + accessibility (release 0.3.0) - #8

Merged
ericwalisko merged 3 commits into
mainfrom
ericwalisko/devx-a11y
Sep 4, 2026
Merged

Developer experience + accessibility (release 0.3.0)#8
ericwalisko merged 3 commits into
mainfrom
ericwalisko/devx-a11y

Conversation

@ericwalisko

Copy link
Copy Markdown
Owner

Quality-of-life for emacs/vim/hardcore-CLI users, plus a first-class accessibility pass. Editor support is CLI-ergonomics + recipes (no plugins to maintain) — the chosen scope.

Developer experience

  • --plain for recall/beliefs/read: tab-separated, id-first, one record per line — pipe to fzf/awk/cut.
  • Shell completions: memware completions {bash,zsh,fish} (generated from the parser via shtab; new memware[shell] extra).
  • Richer --help: per-command examples and an ENVIRONMENT/FILES/ACCESSIBILITY epilog, defaults shown, duplicate global flags hidden from subcommand help.
  • memware assert -: batch tab-separated subject/relation/value[/source] from stdin (#/blank lines skipped); pairs with beliefs --plain | cut -f2,3,4,9 for an $EDITOR round-trip.
  • XDG Base Directory support for fresh installs — $MEMWARE_HOME → existing ~/.memware$XDG_DATA_HOME/memware~/.memware; existing installs never migrated.
  • Man page docs/memware.1, and docs/editor-integration.md (emacs/vim/neovim/fzf recipes).

Accessibility (best-in-class for a CLI)

  • No colour, ever — nothing depends on colour; NO_COLOR honoured by construction.
  • Screen-reader-friendly default output: labeled field : value, one per line, empty fields skipped (linear, nothing aligned by eye).
  • --ascii / MEMWARE_ASCII, plus automatic fallback on a non-UTF-8 locale, swaps the elision glyph for ....
  • docs/accessibility.md states the commitments; regressions are treated as bugs.

Tests

New coverage for --plain, the labeled default view, stdin batch assert, the usage-error exit code, completions, help examples, XDG home resolution, and memware.term. Full suite + ruff + format + mypy green; man page passes mandoc lint; hooks.json validated.

Bumps to 0.3.0 (package + both plugin manifests, per the drift-guard test).

🤖 Generated with Claude Code

ericwalisko and others added 3 commits September 4, 2026 00:05
…ssert

Quality-of-life for editor/terminal users and a first-class accessibility pass.

DX:
- `--plain`: tab-separated, id-first, one record per line (recall/beliefs/read) —
  pipe to fzf/awk/cut.
- `memware completions {bash,zsh,fish}` (new `[shell]` extra, via shtab).
- Rich --help: per-command examples, an ENVIRONMENT/FILES/ACCESSIBILITY epilog,
  defaults shown; duplicate global flags hidden from subcommand help.
- `memware assert -`: batch tab-separated subject/relation/value[/source] from
  stdin (# and blank lines skipped); pairs with `beliefs --plain | cut` for an
  $EDITOR round-trip.
- XDG-aware home for fresh installs (existing ~/.memware never migrated); the
  store path follows it.

Accessibility:
- No colour is ever emitted (NO_COLOR honoured by construction); nothing relies
  on colour.
- Default human output is labeled `field : value`, one per line, empty fields
  skipped — linear for screen readers.
- `--ascii` / MEMWARE_ASCII, plus automatic fallback on a non-UTF-8 locale, swaps
  the … elision glyph for ASCII.
- New memware.term module; index snippet/join use the ascii-aware marker.

Docs: docs/editor-integration.md (emacs/vim/neovim/fzf recipes, no plugins),
docs/accessibility.md, docs/memware.1 man page, README sections.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnaQwZUSDRbVUNh8fsdksD
Bump package and both plugin manifests to 0.3.0 (per the drift guard), and record
the release in the changelog.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnaQwZUSDRbVUNh8fsdksD
macOS runners export LC_CTYPE=UTF-8, which correctly outranks the test's LANG=C
(POSIX precedence LC_ALL > LC_CTYPE > LANG). Clear LC_ALL/LC_CTYPE so the locale
under test is deterministic, and add a test that LC_ALL outranks LANG.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NnaQwZUSDRbVUNh8fsdksD
@ericwalisko
ericwalisko merged commit d3bbb79 into main Sep 4, 2026
6 checks passed
@ericwalisko
ericwalisko deleted the ericwalisko/devx-a11y branch September 4, 2026 04:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant